This specification relates to forwarding network traffic.
The Internet is made up of multiple autonomous systems. An autonomous system can be a network of multiple machines, including routers, clients, and servers that are each controlled by a network operator, e.g., an Internet service provider or a large corporation. In the autonomous system, a router uses a routing protocol to enable communications between machines in the autonomous system and with machines in other networks and/or other autonomous systems. For example, a router can use a selected routing protocol to direct a communication to and from specific machines. Different routing protocols can be used to direct communications within the autonomous system and communications to a network outside the autonomous system. For example, the Border Gateway Protocol (BGP) can be used to route data packets outside of the autonomous system, and the Internal Border Gateway Protocol (IBGP) or Open Shortest Path First (OSPF) protocol can be used to route data packets within the autonomous system.
Available communications protocols include centralized communications protocols and routing protocols. In a centralized communications protocol, each network device operates under the control of a centralized server that has complete information about all other devices in the network (e.g., topological information). In a routing protocol, each device maintains its own information about other devices in (and preferred routing paths within) the network or autonomous system and independently updates such information based on protocol messages received from other devices in the network.